package br.mil.eb.pqrmnt7.scc.entity;

import javax.persistence.ManyToOne;
import javax.validation.constraints.NotNull;
import javax.persistence.Id;
import javax.validation.constraints.Size;
import javax.persistence.GenerationType;
import javax.persistence.MappedSuperclass;
import javax.persistence.FetchType;
import org.hibernate.annotations.ForeignKey;
import javax.persistence.GeneratedValue;
/**
 * 
 * Entidade para representar um Motorista.
 * 
 * @author edigley
 *
 */
@MappedSuperclass
public abstract class Motorista extends AppBaseEntity {
	
	@NotNull
	@Size(max = 1)
	private String sitHistoricoPlc="A";
	
	@Id 
 	@GeneratedValue(strategy=GenerationType.AUTO, generator = "SE_MOTORISTA")
	private Long id;
	
	@NotNull
	@Size(max = 200)
	private String nome;
	
	@ManyToOne (targetEntity = PostoGraduacaoEntity.class, fetch = FetchType.LAZY)
	@ForeignKey(name="FK_MOTORISTA_POSTOGRADUACAO")
	@NotNull
	private PostoGraduacao postoGraduacao;
	
	@NotNull
	@Size(max = 40)
	private String identidade;
	
	@Size(max = 200)
	private String descricao;
	
	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id=id;
	}

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome=nome;
	}

	public PostoGraduacao getPostoGraduacao() {
		return postoGraduacao;
	}

	public void setPostoGraduacao(PostoGraduacao postoGraduacao) {
		this.postoGraduacao=postoGraduacao;
	}

	public String getIdentidade() {
		return identidade;
	}

	public void setIdentidade(String identidade) {
		this.identidade=identidade;
	}

	public String getDescricao() {
		return descricao;
	}

	public void setDescricao(String descricao) {
		this.descricao = descricao;
	}
	
	public String getSitHistoricoPlc() {
		return sitHistoricoPlc;
	}

	public void setSitHistoricoPlc(String sitHistoricoPlc) {
		this.sitHistoricoPlc=sitHistoricoPlc;
	}

}
